package com.linkhub.oms.admin.modules.user.accountflow.domain.param;

import com.linkhub.oms.admin.modules.user.domain.param.BaseUserParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 资金流水查询param
 *
 * @author Frank
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "UserAccountFlowQueryParam", description = "UserAccountFlowQueryParam")
public class UserAccountFlowQueryParam extends BaseUserParam implements Serializable {

    @ApiModelProperty(value = "页数, 从1开始")
    @NotNull(message = "{validation.page.notNull}")
    @Range(min = 1, message = "{validation.page.min}")
    private Integer page;

    @ApiModelProperty(value = "每页大小")
    @NotNull(message = "{validation.pageSize.notNull}")
    private Integer size;

    @ApiModelProperty(value = "交易分类 1-支出 2-收入")
    private List<Integer> transactionTypes;

    @ApiModelProperty(value = "费用类型： 1-提货费 2-仓储费 3-操作费 4-充值 5-运费 6-加工费 7-VAT手续费 8-VAT增值税 9-挂号费")
    private List<Integer> expenseTypes;

    @ApiModelProperty(value = "单据id")
    private String documentId;

    @ApiModelProperty(value = "交易开始日期")
    private String transactionDateBegin;

    @ApiModelProperty(value = "交易结束日期")
    private String transactionDateEnd;

    @ApiModelProperty(value = "商家ids")
    private List<String> merchantUserIds;
}
